<?php
    class TurmaModel extends CI_Model{
     
        public function get($id){
            $this->db->where('turma.id',$id);
            $this->db->select('turma.id, letra, semestre, disciplina, horario, dias, usuario.nome, creditos, professor_id, disciplina_id');
            $this->db->join('disciplina','disciplina.id = turma.disciplina_id');
            $this->db->join('usuario','usuario.id = turma.professor_id');
            return $this->db->get('turma')->row();
        }
        
        public function listar(){
            $this->db->order_by('semestre','desc');
            $this->db->select('turma.id, letra, nome, disciplina, horario, dias');
            $this->db->join('disciplina','disciplina.id = turma.disciplina_id');
            $this->db->join('usuario','usuario.id = turma.professor_id');
            return $this->db->get('turma')->result();
        }
        
        public function cadastrar($dados){
            $this->db->insert('turma', $dados);
            return $this->db->insert_id();
        }
        
        public function cadastrarAlunos($id, $alunos){
            foreach($alunos as $aluno){
                $this->db->set('turma_id',$id);
                $this->db->set('aluno_id', $aluno);
                $this->db->insert('turma_x_aluno');
            }
            return true;
        }
        
        public function editar($dados){
            $this->db->where('id', $dados['id']);
            return $this->db->update('turma',$dados);
        }
        
        public function excluir($id){
            $this->db->where('id', $id);
            return $this->db->delete('turma');
        }
        
        public function getAlunos(){
            $this->db->order_by('nome');
            $this->db->where('perfil_id',2);
            return $this->db->get('usuario')->result();
        }
        
        public function getAlunosTurma($id){
            $this->db->order_by('nome');
            $this->db->select('usuario.id, nome, curso, matricula, faltas, situacao');
            $this->db->where('turma_id',$id);
            $this->db->join('usuario','usuario.id = turma_x_aluno.aluno_id');
            $this->db->join('curso','curso.id = usuario.curso_id');
            return $this->db->get('turma_x_aluno')->result();
        }
        
        public function getAulas($id){
            $this->db->where('turma_id', $id);
            return $this->db->get('aula')->result();
        }
        
        public function cadastrarAula($dados){
            $this->db->insert('aula',$dados);
            return $this->db->insert_id();
        }
        
        public function insereAlunoAula($dados){
            return $this->db->insert('aula_x_aluno', $dados);
        }
        
        public function editarAula($dados){
            $this->db->where('id',$dados['id']);
            return $this->db->update('aula',$dados);
        }
        
        public function excluirAula($id){
            $this->db->where('aula_id',$id);
            $this->db->delete('aula_x_aluno');
            
            $this->db->where('id', $id);
            return $this->db->delete('aula');
        }
        
        public function getAula($id){
            $this->db->where('id', $id);
            return $this->db->get('aula')->row();
        }
        
        public function getAlunosAula($id){
            $this->db->where('aula_id',$id);
            $this->db->select('nome, curso, presenca, observacao');
            $this->db->join('usuario', 'usuario.id = aula_x_aluno.aluno_id');
            $this->db->join('curso','usuario.curso_id = curso.id');
            return $this->db->get('aula_x_aluno')->result();
        }
        
        public function dadosAula($id){
            $this->db->where('aula_id', $id);
            $this->db->where('presenca','Presente');
            $estatistica['presente'] = $this->db->count_all_results('aula_x_aluno');
            
            $this->db->where('aula_id', $id);
            $this->db->where('presenca','Saiu mais cedo');
            $estatistica['cedo'] = $this->db->count_all_results('aula_x_aluno');
            
            $this->db->where('aula_id', $id);
            $this->db->where('presenca','Atraso');
            $estatistica['atraso'] = $this->db->count_all_results('aula_x_aluno');
            
            $this->db->where('aula_id', $id);
            $this->db->where('presenca','Falta');
            $estatistica['falta'] = $this->db->count_all_results('aula_x_aluno');
            
            return $estatistica;
        }
        
        public function addFalta($turma, $aluno, $creditos){
            $this->db->where('turma_id',$turma);
            $this->db->where('aluno_id',$aluno);
            $this->db->select('faltas');
            $result = $this->db->get('turma_x_aluno')->row();
            
            $creditos = $creditos*7;
            $faltas = $result->faltas + 1;
            if($faltas <= creditos*0.05){
                $situacao = 'OK';
            } else {
                if(($faltas > $creditos*0.05)&&($faltas <= $creditos*0.15)){
                    $situacao = 'Poucas faltas';
                } else {
                    if(($faltas > $creditos*0.15)&&($faltas <= $creditos*0.25)){
                        $situacao = 'Muitas faltas';
                    }else {
                        $situacao = 'Reprovado';
                    }
                }
            }
            
            $this->db->where('turma_id',$turma);
            $this->db->where('aluno_id',$aluno);
            $this->db->set('faltas',$faltas);
            $this->db->set('situacao',$situacao);
            return $this->db->update('turma_x_aluno');
        }
        
    }
?>
